Page({
  data: {
    // 是否同意协议
    agreed: false,
    // 是否显示登录成功提示
    showSuccessToast: false,
    // 是否显示取消登录提示
    showCancelToast: false,
    isAgreed: false
  },

  onLoad() {
    // 页面加载时的初始化操作
  },

  // 处理协议勾选状态变化
  handleAgreementChange(e) {
    this.setData({
      agreed: e.detail.value.length > 0,
      // 切换勾选状态时隐藏提示框
      showSuccessToast: false,
      showCancelToast: false
    });
  },

  // 处理授权登录
  handleAuthLogin(e) {
    if (!this.data.isAgreed){
      wx.showToast({
        title: '请先同意用户协议',
        icon: 'none',
        duration: 2000
      });
      return;
    }
    console.log(123, e)
    if (e.detail.errMsg === 'getPhoneNumber:ok') {
      console.log('用户同意手机号授权，开始登录流程');
      this.setData({
        isLoading: true
      });
      
      // 执行授权登录并绑定手机号
      this.performAutoLoginWithPhone(e.detail.code);
    } else {
      console.log('用户取消手机号授权:', e.detail.errMsg);
      wx.showToast({
        title: '需要授权手机号才能登录',
        icon: 'none',
        duration: 2000
      });
    }
  },

  // 执行授权登录并绑定手机号
  performAutoLoginWithPhone(phoneCode) {
    console.log('performAutoLoginWithPhone 被调用，phoneCode:', phoneCode);
    
    wx.login({
      success: (res) => {
        console.log('wx.login响应:', res);
        if (res.code) {
          // 发送授权登录请求到后台，包含手机号
          this.sendAutoLoginWithPhoneRequest(res.code, phoneCode);
        } else {
          console.error('获取登录凭证失败:', res.errMsg);
          this.handleLoginFail({
            errMsg: '获取登录凭证失败'
          });
        }
      },
      fail: (err) => {
        console.error('wx.login失败:', err);
        this.handleLoginFail(err);
      }
    });
  },
  sendAutoLoginWithPhoneRequest(code, phoneCode){
    const userInfo = {
      username: '张三',
      token: 'fake-token' // 模拟token
    };
    wx.setStorageSync('userInfo', userInfo);
  },
  // 登录失败处理
  handleLoginFail(error) {
    console.error('登录失败:', error);

    this.setData({
      isLoading: false
    });

    wx.showToast({
      title: error.errMsg || '登录失败',
      icon: 'none',
      duration: 2000
    });
  },

  // 处理取消登录 (可以在其他地方调用，如右上角菜单)
  handleCancelLogin() {
    this.setData({
      showCancelToast: true,
      showSuccessToast: false
    });
    
    // 3秒后隐藏取消提示
    setTimeout(() => {
      this.setData({
        showCancelToast: false
      });
    }, 3000);
  },
  // 切换协议同意状态
  onToggleAgreement() {
    this.setData({
      isAgreed: !this.data.isAgreed
    });
  },
  // 打开协议页面
  onOpenAgreement(e) {
    const type = e.currentTarget.dataset.type;
    let url = '';

    if (type === 'privacy') {
      url = '/pages/agreement/agreement'; // 修改为实际存在的协议页面
    } else if (type === 'terms') {
      url = '/pages/agreement/agreement'; // 修改为实际存在的协议页面
    }

    if (url) {
      wx.navigateTo({
        url: url,
        fail: () => {
          wx.showToast({
            title: '页面不存在',
            icon: 'none'
          });
        }
      });
    }
  },
});
